package net.schastny.shopmanager.service;

import java.util.List;

import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;

import net.schastny.shopmanager.dao.ShopDAO;
import net.schastny.shopmanager.domain.Shop;
/*Service - Мы используем данную аннотацию, чтобы объявить, что этот класс представляет сервис – 
 * компонент сервис-слоя. Сервис является подтипом класса @Component. Использование 
 * данной аннотации позволит искать бины-сервисы автоматически (смотрите далее в 
 * root-context.xml).
 */

@Service
public class ShopServiceImpl implements ShopService {
	
	@Autowired
    private ShopDAO shopDAO;
	/*
	 * Transactional - Перед исполнением метода помеченного данной аннотацией начинается транзакция, 
	 * после выполнения метода транзакция коммитится, 
	 * при выбрасывании RuntimeException откатывается.
	 */
	@Transactional	
	public void addShop(Shop shop) {
		// TODO Auto-generated method stub
		shopDAO.addShop(shop);
	}
	
	@Transactional
	public List<Shop> listShop() {
		// TODO Auto-generated method stub
		return shopDAO.listShop();
	}
	
	@Transactional
	public void removeShop(Integer id) {
		// TODO Auto-generated method stub
		shopDAO.removeShop(id);
	}

}
